#pragma once

#ifndef __SWIG__
#include <Windows.h>
#include <map>
#include <string>
#include <Python.h>
#include "PyCallBack.h"
#endif

class CEventManager
{
#ifndef __SWIG__
protected:
	std::map<const std::string, PyObject*> m_pEventHandler; // a name -> callback function map
#endif

public:
	CEventManager();
	virtual ~CEventManager();
	virtual PyObject* SetCallback(const std::string& eventName, PyObject* pCallback);
	virtual PyObject* GetCallback(const std::string& evtName);
	virtual HRESULT ClearCallback();
};
